今天設計一款遊戲,名為:戰鬥吧!勇士。
並在DAY12介紹OOP 的使用
目錄:
1.遊戲流程:
2.技術介紹:
3.遊戲呈現
1.遊戲流程:
玩家將扮演一位勇士,與隨機生成的敵人進行戰鬥。每次戰鬥中,玩家和敵人將輪流進行攻擊,直到其中一方的生命值降為零。遊戲結束後,玩家可以選擇重新開始或退出遊戲。
2.技術介紹:
面向對象設計(OOP):
/遊戲將使用面向對象的方式來設計,包括Player和Enemy兩個主要類別,這些類別將擁有自己的屬性和方法。這種設計方式有助於提高代碼的可讀性和可維護性。
/每個類別將包含屬性如health(生命值)和attackPower(攻擊力),以及方法如attack()和takeDamage()。
隨機性:
/使用java.util.Random來生成隨機的敵人屬性(如生命值和攻擊力),讓每場戰鬥都具有不可預測性,增加遊戲的挑戰性和趣味性。
控制流程:
/使用while循環和if-else結構來管理遊戲的進程,包括攻擊輪次和生命值檢查。
交換用戶:
/使用Scanner來處理用戶輸入,允許玩家選擇進行攻擊或退出遊戲。
數據持久性(進階選項):
/可以引入簡單的數據存儲功能,比如使用文件來保存玩家的戰績,讓玩家下次打開遊戲時可以查看自己過去的表現。
3.遊戲呈現
import java.util.Random;
import java.util.Scanner;
class Character {
String name;
int health;
int attackPower;
public Character(String name, int health, int attackPower) {
this.name = name;
this.health = health;
this.attackPower = attackPower;
}
public void attack(Character enemy) {
System.out.println(this.name + " attacks " + enemy.name);
enemy.takeDamage(this.attackPower);
}
public void takeDamage(int damage) {
this.health -= damage;
System.out.println(this.name + " takes " + damage + " damage, remaining health: " + this.health);
}
public boolean isAlive() {
return this.health > 0;
}
}
public class BattleGame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
System.out.println("Enter your warrior's name: ");
String playerName = scanner.nextLine();
Character player = new Character(playerName, 100, 20);
while (true) {
Character enemy = new Character("Enemy", random.nextInt(50) + 50, random.nextInt(15) + 10);
System.out.println("A wild " + enemy.name + " appears with " + enemy.health + " health!");
while (player.isAlive() && enemy.isAlive()) {
System.out.println("\nChoose your action: (1) Attack (2) Run");
int choice = scanner.nextInt();
if (choice == 1) {
player.attack(enemy);
if (enemy.isAlive()) {
enemy.attack(player);
}
} else if (choice == 2) {
System.out.println("You ran away!");
break;
} else {
System.out.println("Invalid choice, try again.");
}
}
if (!player.isAlive()) {
System.out.println("You have been defeated! Game Over.");
break;
} else if (!enemy.isAlive()) {
System.out.println("You defeated the enemy!");
}
System.out.println("Do you want to play again? (yes/no)");
scanner.nextLine(); // clear buffer
String playAgain = scanner.nextLine();
if (!playAgain.equalsIgnoreCase("yes")) {
System.out.println("Thanks for playing!");
break;
}
}
scanner.close();
}
}
進一步的擴展:
*難度調整:隨著玩家的勝利,敵人的強度可以逐漸增加,以保持遊戲的挑戰性。
*裝備系統:為玩家和敵人引入裝備系統,裝備可以影響攻擊力和防禦力,增加戰鬥的策略性。
*技能系統:增加技能和魔法,讓戰鬥過程更加豐富和多樣化。